1. Field of the Invention
The present invention relates to protocols used for managing compression resources distributed in a network, and more particularly to techniques for avoiding the use of compression resources on data that has already been compressed, or is otherwise less suitable for compression by intermediate links in a network.
2. Description of Related Art
The Internet includes a web of communication links through which data paths are established from end station to end station. End stations setup sessions using protocols such as the Transmission Control Protocol over the Internet Protocol TCP/IP or the User Datagram Protocol over the Internet Protocol UDP/IP. Packets in the sessions are routed through the links in the web and traverse intermediate stations.
Links between intermediate stations in the web are managed independent of, and often transparent to, the end stations. For example, intermediate stations interconnected by a long distance link may perform functions such as encryption, tunneling, and compression. One intermediate station function involves standard IPSEC Internet protocol security specified in RFC 1826 and RFC 1827. IPSEC is established between intermediate stations. for example between routers at separate campuses of a company. In this way data sent between the campuses is protected. It is desirable to compress the data being sent between the campuses in order to preserve bandwidth. Also it is found that data which has been encrypted does not compress well because the encryption protocol tends to randomize the data and make it more difficult to compress. Thus, installations which apply the IPSEC protocol across intermediate links compress the data prior to encryption. The compressed data is encrypted and transmitted across the links to the remote campus.
However, not all data is suitable for compression. Thus, the compression resources at these intermediate stations are being wasted on certain kinds of data. For example, end stations may send data which has already been compressed between one another. To compress it once again at an intermediate station will not yield significant difference in its size.
Accordingly, it is desirable to provide a technique by which the resources at intermediate stations in the network can be conserved while maintaining the efficient use of the available bandwidth.
The present invention uses techniques of active networking to enable intermediate systems to determine whether data in a packet which is traversing the system is compressed. Based on this determination, the compression resources at the intermediate system are invoked or not. Thus, compression resources can be conserved.
Active networking is a term used to identify a class of communication techniques by which networking equipment places special data in packets to control network device behavior. This may be done in a number of different ways. According to the present invention, active networking data is placed in packets flowing between end systems. The end system sending these packets may not know whether there are intermediate systems between it and the other end system of a communication session, that require knowledge about compressed data, encrypted data, or other dynamically processed data in the packet. It places the active networking data in packets so that any intermediate systems that can use knowledge of which packets contain the dynamically processed data, may use the active networking data to make the determination.
Thus according to the present invention, a method for managing use of compression resources, and alternatively encryption resources or other dynamic processing resources, in the intermediate devices of the network is provided. According to the method, sessions are established for transmitting a plurality of packets which have session identifiers and data payloads between the sending end station and receiving end station. The session has a path through an intermediate device in the network which includes compression resources in a preferred embodiment. A message is sent which is picked up by the intermediate device in the path, which indicates a characteristic relevant to the compression resources of the data payloads in the session. The packets of the session are transmitted through the intermediate device, which can now recognize them and determine whether to apply compression resources or not based on the information in the message. Thus, according to one aspect of the invention, the data payloads in the packets are dynamically processed, such as by compression, at the sending end station in a way which reduces the effectiveness of compression, encryption or other dynamic process resources at the intermediate station. The characteristic of the data payloads in the session according to this aspect of the invention comprises notification of the dynamic processing in the end station.
According to various aspects of the invention. the process of establishing a session between a sending end station and a receiving end station may include establishing a tunneling protocol session between the sending end station and an intermediate device acting as a tunnel gateway. An intermediate system either within the tunneling path. or outside the tunneling path includes the compression, encryption or other dynamic process resources and acts upon the message that indicates types of packets to be compressed. The tunneling protocol may include a Layer 2 Tunneling Protocol L2TP, a Point-to-Point Tunneling Protocol PPTP, or other tunneling techniques known in the art.
According to other aspects of the invention, the characteristic relevant to the compression resources of the data payloads in the session comprises a filter definition for identifying packets in the particular session. According to another aspect, a filter definition identifies packets in the session and identifies the already compressed parts of the identified packets. In this manner, the compression resources may be selectively applied, at particular intermediate stations capable of doing so, or capable of executing a program provided in an active packet to do so, to portions of the packet which have not been compressed, or otherwise processed in a way which reduces the effectiveness of the compression resource at the particular intermediate station.
According to yet another aspect of the invention, the message comprises an active packet that includes filter definitions and/or a program of instructions executable in the intermediate device to implement the filter. Alternatively, the message may comprise an object that includes the filter definition, and a method, or a reference to a method used in implementation of the filter.
According to another aspect, the invention can be characterized from the point-of-view of the intermediate device. Thus, in a network including end stations establishing communication sessions through intermediate devices, a method for managing use of the compression, encryption or other dynamic process resources in the intermediate devices is provided. The method includes receiving at an intermediate device a message in the form of an active packet, traversing a path of a session between end stations other than the intermediate device, indicating a characteristic relevant to the compression resources, in one preferred embodiment, of the data payloads in the particular session. In response to the message, a filter is established in intermediate device to identify packets in the particular session. The data payloads received at the intermediate station identified using the filter are forwarded without applying the compression resources of the intermediate device. The data payloads not identified using the filter are forwarded after applying the compression resources.
According to one aspect of the invention, before the step of forwarding the data payloads, the data is encrypted, such as according to the IPSEC protocol.
According to other aspects of the invention, the message comprises a packet transmitted in connection with establishment of a particular session, according to the Resource Reservation Protocol RSVP. The message may comprise filter definitions, a combination of filter definitions and a program of instructions, or objects, such as JAVA objects which include variables and methods used in establishment of the filter.
In yet another aspect of the invention, sessions are established for transmitting a plurality of packets having session identifiers in data payloads between a sending end station and a receiving end station according to a transport layer protocol such as UDP. The session has a path through an intermediate device in the network which includes compression resources. A message is sent which is picked up by the intermediate device in the path of the data payloads in the session which includes compressed data. The data payloads are compressed at the sending end station, and the packets are transmitted including compressed data payloads to the receiving end station. The message transmitted to the intermediate device comprises a packet transmitted by the sending end station during establishment of this particular session, such as according to the RSVP protocol. In various embodiments, the message sent to the intermediate device may be originated from an end station. Also, the end stations of a session may comprise network devices which are acting as tunnel gateways, or other edge devices in the network between which communication sessions are established.
Other aspects and advantages of the present invention can be seen upon review of the figures, the detailed description and the claims which follow.